package orm

import (
	"gin-study/config"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"time"
)

var db *gorm.DB

//最大连接数
const MAX_OPEN_CONNS = 10

//最大空闲连接数
const MAX_IELD_CONNS = 2

func init() {
	var err error

	db, err = gorm.Open(mysql.Open(config.DB.DSN), &gorm.Config{
		QueryFields: true,
	})
	if err != nil {
		panic("mysql初始化失败:" + err.Error())
	}
	if config.App.Debug {
		db = db.Debug()
	}
	d, err := db.DB()
	//最大连接数
	d.SetMaxOpenConns(MAX_OPEN_CONNS)
	//最大空闲连接数
	d.SetMaxIdleConns(MAX_IELD_CONNS)
	//一分钟不使用为空闲
	d.SetConnMaxIdleTime(time.Second)
}

func DB() *gorm.DB {
	return db
}
